﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using GalaSoft.MvvmLight.Messaging;
using ScheduleMVVM.ViewModel;

namespace ScheduleMVVM.Model.RuntimeFramework
{
    internal sealed class DownloadInvokedMessage : MessageBase
    {
        public AdvancedDataAccess callback;
    }
    internal sealed class DownloadCompletedMessage : MessageBase
    {
        public AdvancedDataAccess callback;
    }
    internal sealed class DownloadErrorMessage : MessageBase
    {
        public String ErrorMessage
        { get; set; }
        public ErrorCause Cause
        { get; set; }
        public Exception UnderlyingException
        { get; set; }
        public AdvancedDataAccess callback;
    }
    
    internal class ListChangedMessage : MessageBase
    { }
    internal class UpdateContextCommand : MessageBase
    {
        public UpdateContextCommandType Action
        { get; set; }
        public RouteEntry Argument;
    }
    internal enum UpdateContextCommandType
    {
        DELETE,
        ADD,
        RENAME,
        SORT
    }
    internal class UpdateRouteViewCommand : MessageBase
    {
        public RouteEntryWrapper NewEntry
        { get; private set; }
        public UpdateRouteViewCommand(RouteEntryWrapper entry)
        {
            NewEntry = entry;
        }
    }
    internal class UpdateTick : MessageBase
    {  }
    internal class OnActivatedCommand : MessageBase
    {  }
    internal class CancelDownloadCommand : MessageBase
    {  }
}
